1. Field of the Invention
The present invention relates to the installation of software and recovering from installation and runtime errors in a continuously updated and extended distributed computer environment.
2. Description of the Related Art
Many software systems are continuously being updated and extended with new system components and applications. Therefore, purchasers of such software systems often receive updates from the software manufacturers to update the original versions. These updates are typically transmitted by a server of the software provider to the client via a communication network such as the internet. The updates may be automatically sent or a user may download a new version of software via the internet. If any errors occur during either the download, installation, or runtime of the software, it is desirable if the client device can recover from the error. Preferably, the client device reverts back to a previous version of the software system. Furthermore, the installation itself, especially if it is automatic, must be performed so that it does not disturb the user's use of the device.
PCT Patent Publication No. WO 00/58834 discloses a software installation and recovery system for a television viewing computer system. In that system, the computer system has a three stage startup procedure including a bootloader stage, an operating system kernel stage, and an application stage. A persistent storage (hard disk) has two partitions for each stage of the three stage startup procedure, a primary partition and a backup partition. More specifically, there are two partitions dedicated to holding a copy of the second stage boot loader, two partitions holding a copy of the operating system kernel, and two partitions holding a copy of the application software. An indication is recorded that specifies which of the partitions of each pair is the primary and which is the backup. When a new software image is installed, the new image is first copied into the appropriate backup partition and an indication is made in the database that the software installation is underway. The primary and backup partitions are then swapped and the system is rebooted using the new primary partition of the software that has just been downloaded. Control is passed to the backup partition for each software component if the primary partition fails to load properly.
This prior art device includes a separate backup partition for the bootloader stage, the operating kernel loading stage, and the applications loading stage of the installation procedure. The disclosed system detects only failures during loading of programs associated with these stages. That is, this system detects whether the loading process for each of these stages is successfully completed. Accordingly, this system does not address runtime failures, i.e., failures which occur during the running of the programs such as if the program becomes non-responsive or “hangs”.